﻿// 推箱子.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include<stdlib.h>
#include <iostream>
using namespace std;
int main()
{
	char l[10][10] = { 0 };
	int linenumber, x, y;
	int ste[4];
string line;
cin >> linenumber;
for (int i = 0; i < linenumber; i++)//输入地图
{
	cin >> line;
	for (int j = 0; j < line.length(); j++)
	{
		l[i][j] = line[j];

	}
}
for (int i = 0; i < linenumber; i++)//确定小人位置
{
	for (int j = 0; l[i][j]!=0; j++)
	{
		if (l[i][j] == '@')
		{                                                                                                                                       
			x=i,y=j;
			break;
		}

	}
}
for (int r = 0; r <= 10000; r++)//让机器人尝试
{
	if (l[x][y + 1] == ' ')//进行四个方向的障碍物判定
	{
		ste[1] = 1;
	}
	else if(l[x][y+1]=='O')
	{
		if (l[x][y + 2] == ' ')
			ste[1] = 1;
	}
	if (l[x][y - 1] == ' ')
	{
		ste[2]=1;
	}
	else if (l[x][y - 1] == 'O')
	{
		if (l[x][y - 2] == ' ')
			ste[2] = 1;
	}
	if (l[x - 1][y] == ' ')
	{
		ste[3]=1;
	}
	else if (l[x-1][y] == 'O')
	{
		if (l[x-2][y] == ' ')
			ste[3] = 1;
	}
	if (l[x + 1][y] == ' ')
	{
		ste[4]=1;
	}
	else if (l[x+1][y] == 'O')
	{
		if (l[x+2][y] == ' ')
			ste[4] = 1;
	}
	
	for (int y = 0; y < 4; y++)
	{
		int b = rand() % 4;//生成随机数
		if (b == 1 && ste[1] == 1)//走到某个位置
		{
			cout << "u";
			break;
		}
		if (b == 2 && ste[2] == 1)
		{
			cout << "d";
			break;
		}if (b == 3 && ste[3] == 1)
		{
			cout << "l";
			break;
		}if (b == 4 && ste[4] == 1)
		{
			cout << "r";
			break;
		}
	}

}
	

// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单

// 入门使用技巧: 
//   1. 使用解决方案资源管理器窗口添加/管理文件
//   2. 使用团队资源管理器窗口连接到源代码管理
//   3. 使用输出窗口查看生成输出和其他消息
//   4. 使用错误列表窗口查看错误
//   5. 转到“项目”>“添加新项”以创建新的代码文件，或转到“项目”>“添加现有项”以将现有代码文件添加到项目
//   6. 将来，若要再次打开此项目，请转到“文件”>“打开”>“项目”并选择 .sln 文件
